﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Logica;
using Datos;
using Datos.Entidades;
using Logica.Comandos;
using Datos.Fabricas;
using Logica.FabricaLogica;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos.ComandosAdministracionEvento;
using Logica.Comandos.AdministracionEvento;

namespace Pruebas
{
     [TestFixture]
    public class PruebasEvento
    {
         [TestCase]
         public void PruebaIngresarEvento()
         {
             Entidad crearEvento = FabricaEntidades.ObtenerEvento();
             Entidad agregarcat = FabricaEntidades.ObtenerCategoria();


             (crearEvento as Evento).NombreEvento = "uefa";
             (crearEvento as Evento).FK_Id_Categoria = 3;
             Comando comandoEvento = FabricaComandoEvento.ObtenerComandoInsertarEvento();
             comandoEvento.Entidad = crearEvento;
             Boolean respuestaEvento = false;

             (comandoEvento as ComandoCrearEvento).Ejecutar();
             respuestaEvento = comandoEvento.Flag;
             Assert.AreEqual(respuestaEvento, true);
         }

        

          [TestCase]
         public void PruebaModificarEvento()
         {
             Entidad modificarEvento = FabricaEntidades.ObtenerEvento();


             (modificarEvento as Evento).Id_HistorialParticipante = 1;
             (modificarEvento as Evento).Fecha_Inicio = ("22/10/2011");
             (modificarEvento as Evento).Fecha_Fin = "null";
             (modificarEvento as Evento).Hora = 10;
             (modificarEvento as Evento).Minuto = 10;

             Comando comandoEvento = FabricaComandoEvento.ObtenerComandoModificarEvento();
             comandoEvento.Entidad = modificarEvento;
             Boolean respuestaEvento= false;

             (comandoEvento as ComandoModificarEvento).Ejecutar();
              respuestaEvento = comandoEvento.Flag;

             Assert.AreEqual(respuestaEvento, true);
         
         }

          [TestCase]
         public void InsertarHistorialParticipante()
         {

             Entidad crearEvento = FabricaEntidades.ObtenerEvento();
             Entidad agregarcat = FabricaEntidades.ObtenerCategoria();


             (crearEvento as Evento).Fecha_Inicio = ("06/12/2011");
             (crearEvento as Evento).Fecha_Fin = ("08/12/2011");
             (crearEvento as Evento).Hora = 10;
             (crearEvento as Evento).Minuto = 10;

             (crearEvento as Evento).FK_Id_Evento = 3;
             (crearEvento as Evento).FK_Id_Participante = 3;

             Comando comandoEvento = FabricaComandoEvento.ObtenerComandoInsertarHistorialParticipante();
             comandoEvento.Entidad = crearEvento;
             Boolean respuestaEvento = false;

             (comandoEvento as ComandoCrearHistorialParticipante).Ejecutar();
             respuestaEvento = comandoEvento.Flag;

             Assert.AreEqual(respuestaEvento, true);
         }

          [TestCase]
         public void obtenerEventoNOmbre()
         {
              Entidad eve = new Entidad();
             Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoNombre();
             comando.Tipo = "uefa";
             (comando as ComandoBuscarEventoNombre).Ejecutar();
             eve = comando.Entidad;
             int id = (eve as Evento).Id_Evento;
             Assert.AreNotEqual(id, 0);


         }

          [TestCase]
         public void PruebaObtenerEventoCategoria()
         {
             bool respuesta = false;
             List<Entidad> misEventosCategorias = new List<Entidad>();
             Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoCategoria();
             comando.Id = 3;
             (comando as ComandoBuscarEventoCategoria).Ejecutar();

             misEventosCategorias = comando.ListaEntidad;

             if (misEventosCategorias != null)
             {

                 respuesta = true;

             }
             Assert.AreEqual(respuesta, true);

         }

          [TestCase]
         public void PruebaObtenerEventos()
         {
             bool respuesta = false;
              List<Entidad> misEventosCategorias = new List<Entidad>();
             Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEvento();
             comando.Ejecutar();
             misEventosCategorias = comando.ListaEntidad;
             if (misEventosCategorias != null)
             {

                 respuesta = true;
             }
             Assert.AreEqual(respuesta, true);

         }
          [TestCase]
          public void PruebaEliminarEvento()
          {

              Entidad desEvento = FabricaEntidades.ObtenerEvento();



              (desEvento as Evento).Id_Evento = 3;

              Comando comandoEvento = FabricaComandoEvento.ObtenerComandoEliminarEvento();
              comandoEvento.Entidad = desEvento;
              Boolean respuestaEvento = false;

              (comandoEvento as ComandoEliminarEvento).Ejecutar();
              respuestaEvento = comandoEvento.Flag;
              Assert.AreEqual(respuestaEvento, true);

          }
    }
}
